home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / faq-s.zip / MAIN.PAS < prev    next >
Pascal/Delphi Source File  |  1991-05-04  |  9KB  |  263 lines

  1. {$R-,S-,I-,D-,F+,V-,B-,N-,O+ }
  2. {$M 65500,0,0 }
  3.  
  4. unit main;
  5.  
  6. interface
  7.  
  8. uses crt,overlay,gamble,trivia,mainr1,
  9.      gentypes,modem,gensubs,subs1,subs2,userret,overret1,mainr2,
  10.      quotes,about,msg,configur,database,doors,email,filexfer,mycomman,voting,
  11.      mainmenu,gfiles,configrt,viewansi,nuv,getlogin;
  12.  
  13. procedure mainsysopcommands;
  14. procedure quickmenu;
  15. procedure mainmenuproc;
  16. procedure breakout;
  17.  
  18. implementation
  19.  
  20. procedure mainsysopcommands;
  21. var k,c:char;
  22.     q:integer;
  23.  
  24. begin
  25.   repeat
  26.     q:=menu ('Sysop','SYSOP','QTEANDUCIJSKVMFRZOXP?');
  27.     case q of
  28.       2:editoldspecs;
  29.       3:readerrlog;
  30.       4:addnews;
  31.       5:editnews;
  32.       6:delerrlog;
  33.       7:editusers;
  34.       8:settime;
  35.       9:infoformhunt;
  36.       10:showallforms;
  37.       11:viewsyslog;
  38.       12:delsyslog;
  39.       13:showallsysops;
  40.       14:makeuser;
  41.       15:readfeedback;
  42.       16:removeallforms;
  43.       17:zapspecifiedusers;
  44.       19:transfername;
  45.       20:searchphone;
  46.       21:begin
  47. writeln('C╔═════════════════════════════════════╗Hs');
  48. writeln('uC║ Sysop Section                       ║Hs');
  49. writeln('uC╚═════════════════════════════════════╝HHC╔══s');
  50. writeln('u═══════════════════════════════════╗HC║ [A]  s');
  51. writeln('uAdd News                       ║HC║ [Cs');
  52. writeln('u]  Change Time/Date               ║HC║ [s');
  53. writeln('uD]  Delete Error Log               ║Hs');
  54. writeln('uC║ [E]  Read Error Log                 ');
  55. writeln('1HC║ [F]  Feedback Section               s');
  56. writeln('u║1HC║ [I]  Search for Infoform   s');
  57. writeln('u╔═════════════════════════════════════╗1HC║ s');
  58. writeln('u[J]  Show all Infoforms    ║ [Qs');
  59. writeln('u]  Quit                           ║1HCs');
  60. writeln('u║ [K]  Delete System Log     ║ [s');
  61. writeln('uR]  Delete Infoforms               ║1HCs');
  62. writeln('u║ [M]  Make/Create User      ║ [s');
  63. writeln('uS]  Read System Log                ║1HCs');
  64. writeln('u║ [N]  News Editor           ║ [s');
  65. writeln('uT]  Edit Told Specifications       ║1HCs');
  66. writeln('u║ [O]  Modify Conference(s)  ║ [s');
  67. writeln('uU]  Edit User(s)                   ║1HCs');
  68. writeln('u║ [P]  Search for Phone #    ║ [s');
  69. writeln('uV]  Show all Sysops                ║1HCs');
  70. writeln('u╚════════════════════════════║ [X]  Ts');
  71. writeln('uransfer User                  ║1HC║ [Z]s');
  72. writeln('u  Zap Specified User(s)          ║1HC║ [s');
  73. writeln('u?]  View This Menu                 ║1HA');
  74. writeln('C╚═════════════════════════════════════╝');
  75. writeln;
  76. pause;
  77.            end;
  78.     end
  79.   until (q=1) or hungupon
  80. end;
  81.  
  82. procedure mainmenuproc;
  83. var b:boolean;
  84.     c:char;
  85.     cnt,q:integer;
  86. begin
  87.        repeat
  88.         if fromdoor and (returnto='D') then doorsmenu;
  89.         cursection:=mainsysop;
  90.         randomquote;
  91.         echoit:=true;
  92.     q:=menu ('Main','MAIN','ABCDEFGHIJKLMNOPQRSTUVWXYZ+-!&$%@*./?');
  93.         writeln;
  94.         case q of
  95.           1:aboutthisbbs;
  96.           2:bbslist;
  97.           3:summonsysop;
  98.           4:datamenu;
  99.           5:emailmenu;
  100.           6:feedback;
  101.           7:offfaq;
  102.           9:begin
  103.              writeln;
  104.              writestr ('Which Info-Form would you like to fill out? [#1-5]: *');
  105.              if (valu(input)>0) or (valu(input)<6) then
  106.               infoform (valu(input)) else
  107.              writeln (^M'Invalid Info-Form Number!'^M);
  108.             end;
  109.           10:if usegambling then begin;
  110.           credits:=0;
  111.           game;
  112.           end;
  113.           11:begin clearscr; configure; end;
  114.           12:listusers;
  115.           13:begin
  116.              changecon('M');
  117.              messagemenu;
  118.              end;
  119.           14:printnews;
  120.           15:doorsmenu;
  121.           16:gfilesection;
  122.          {17:begin
  123.              writestr (^R'Begin Global Newscan? [y/n]: '^U'*'); if yes then begin
  124.              changecon('M'); messagemenu; newscanall;
  125.              changecon('X'); udsection; newscanall;
  126.              end else exit;
  127.              end;}
  128.           17{18}:quotemenu;
  129.           19:showsystemstatus;
  130.           20:begin
  131.              changecon('X');
  132.              udsection;
  133.              end;
  134.           18{21}:playTrivia;
  135.           21:if usenuv then newvotex else write (^M'New User Voting not configured in setup.'^M);
  136.           22:votingbooth(false);
  137.           23:showlastcallers;
  138.           24:timebank;
  139.           25:begin
  140.           show_all_info(textfiledir+'UserStat',getlastcaller,cnt);
  141.           pause;
  142.           end;
  143.           26:setlastcall;
  144.           27:changepwd;
  145.           28:quickmenu;
  146.           29:requestraise;
  147.           30:showad;
  148.           31:donations;
  149.           32:mainsysopcommands;
  150.       33:viewansiscreens;
  151.       34:showcredits;
  152.           35:if matrixtype>0 then begin
  153.           writestr ('Go back to Gateway? *');
  154.           if yes then begin getloginproc; exit; end;
  155.           end;
  156.           36:begin
  157. if ansigraphics in urec.config then begin
  158. cursor (false);
  159. clearscr;
  160. ansi_window (29,1,51,3);
  161. movexy (33,2); write (^S'[ Main Section ]');
  162. ansi_window (4,5,26,18);
  163. write_menu (6,6,'A','Information');
  164. write_menu (6,7,'B','BBS Listings');
  165. write_menu (6,8,'C','Page the Sysop');
  166. write_menu (6,9,'D','Databases');
  167. write_menu (6,10,'E','Electronic Mail');
  168. write_menu (6,11,'F','Feedback');
  169. write_menu (6,12,'G','Log off of BBS');
  170. write_menu (6,13,'I','Infoforms');
  171. write_menu (6,14,'J','Games/Gambling');
  172. write_menu (6,15,'K','User Config');
  173. write_menu (6,16,'L','List Users');
  174. write_menu (6,17,'M','Message Section');
  175. ansi_window (29,5,51,18);
  176. write_menu (31,6,'N','Read News');
  177. write_menu (31,7,'O','Online Doors');
  178. write_menu (31,8,'P','G-Files Section');
  179. write_menu (31,9,'Q','Quotes Section');
  180. write_menu (31,10,'R','Trivia Section');
  181. write_menu (31,11,'S','System Stats');
  182. write_menu (31,12,'T','Transfer Section');
  183. write_menu (31,13,'V','Voting Section');
  184. write_menu (31,14,'W','Last Callers');
  185. write_menu (31,15,'X','Time Bank');
  186. write_menu (31,16,'Y','User Statistics');
  187. write_menu (31,17,'Z','Change Last Call');
  188. ansi_window (54,5,76,18);
  189. write_menu (56,6,'!','Raise Request');
  190. write_menu (56,7,'$','Donation Info');
  191. write_menu (56,8,'%','Sysop Commands');
  192. write_menu (56,9,'&','View BBS Ad');
  193. write_menu (56,10,'*','Welcome Screens');
  194. write_menu (56,11,'-','Quick Section');
  195. write_menu (56,12,'+','Change Password');
  196. write_menu (56,13,'.','FAQ Credits');
  197. write_menu (56,14,'/','Return to Gateway');
  198. write_menu (56,15,'/O','Log off FAST!');
  199. write_menu (56,16,'^R','Last Command');
  200. write_menu (56,17,'?','View This Menu');
  201. movexy (1,20);
  202. cursor (true);
  203. pause;
  204. end else printfile (textfiledir+'MAINM');
  205.            end;
  206.         end
  207.       until hungupon
  208. end;
  209.  
  210. procedure quickmenu;
  211. var i:char;
  212. begin
  213. repeat
  214. buflen:=1;
  215. writestr (^P'['^R'Quick Section'^P'] ['^R+strr(timeleft)+^P']'^S': '^U'*');
  216. i:=upcase(input[1]);
  217. case i of
  218.   'C':summonsysop;
  219.   'G','O':offfaq;
  220.   'X':begin changecon('X');
  221.           udsection;
  222.     end;
  223.   'M':begin changecon('M');
  224.           messagemenu;
  225.       end;
  226.   'E':emailmenu;
  227.   'F':feedback;
  228.   '?':begin
  229.       writeln (^M'          - FAQ Quick Section -'^M);
  230.       writeln ('[C]: Page the Sysop  [E]: Email Section');
  231.       writeln ('[F]: Feedback        [G]: Log off');
  232.       writeln ('[M]: Message Bases   [O]: Log off');
  233.       writeln ('[Q]: Quit            [X]: Xfer Section');
  234.       writeln ('[?]: This Menu'^M);
  235.     end;
  236. end;
  237. until (upcase(i)='Q') or hungupon;
  238. end;
  239.  
  240. procedure breakout;
  241. begin
  242.   if (erroraddr=nil) and (exitcode=e_controlbreak) then begin
  243.     textcolor (7);
  244.     textbackground (0);
  245.     updateuserstats (false);
  246.     writeln (direct,'Break:');
  247.     writereturnbat;
  248.     ensureclosed;
  249.     window (1,1,80,25);
  250.     gotoxy (1,25);
  251.     clreol;
  252.     if not carrier then dontanswer
  253.   end;
  254.   doneexitproc
  255. end;
  256.  
  257. {$F-}
  258.  
  259. begin
  260.   addexitproc (@breakout)
  261. end.
  262.  
  263.